package com.company.clientscard.server.dao;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public interface GenericDao<T, E extends Serializable> {

	Long getId();

	T findById(T type, E id);

	List<T> findAll(Class<T> type);

	List<T> findAll(Class<T> type, int firstRow, int numberOfRows);

	List<T> findWithExpression(Class<T> type, int firstRow, int numberOfRows,
			Date date1, Date date2);

	List<T> findWithParam(Class<T> type, String paramName, Object param);
}
